Integrate koni-docs standard#5000
Open
saltict wants to merge 69 commits into
Open
Conversation
Brainstorming output for ai-development branch. Covers scope decomposition (1 of 3 sub-tasks), file inventory, content shape, execution workflow, risks, and out-of-scope items deferred to sub-task 2 (docs content) and sub-task 3 (issue migration).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Author
|
🚀 Deployed on https://pr-5000--sw-web-runner.netlify.app |
Adapted from multica-ai/andrej-karpathy-skills CLAUDE.md. Adds 4 rules (Think Before Coding, Simplicity First, Surgical Changes, Goal-Driven Execution) at the top so AI agents see them before project-specific context. Existing sections renumbered 1-10 -> 2-11; no content changes.
… and remove logo image
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
WAVE 4/5 subgraphs reused ids W4/W5 as node ids, breaking the Mermaid render. Rename the nodes to W4N/W5N and update the wave classDef list. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Phase 3 header read "Bitcoin, Cardano, Multi-chain Ecosystem" but its entries (D26-D30) are all swap/XCM scope decisions: cancel dynamic swap pairs, cancel 1inch, stay on ParaSpell, migrate ParaSpell v1, remove the Crowdloans tab. Retitle to "Swap/XCM Consolidation & Feature Pruning" so the phase name matches the decisions it groups. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Phase 2 header said "Earning, Swap, and Multi-chain Expansion" but it has no swap decision (those are Phase 3) and omitted D21 Texterify (i18n) and D22 Meld (fiat on-ramp). Retitle to "Earning Rebrand, XCM Bridge, i18n & Fiat Tooling" so the name covers D20-D25. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Intake-B only flagged explicitly-worded decisions, so major integrations (BTC, TON, Cardano, Bittensor, proxy, multisig) had 0 CONTEXT entries despite being large feature areas — while trivial items like the Crowdloans removal were captured. Per the koni-docs definition (an architecture or scope decision / "why we picked X over Y"), mined the real architecture/scope decisions for those areas from issues/PRs/ comments and merged them with the existing 30. Result: 30 -> 59 decisions, renumbered D1-D59 chronologically, re-bucketed into 5 phases with content-accurate titles. New-decision versions resolved from the CHANGELOG issue->version map. All bodies preserved verbatim. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The AD table only had infra decisions (storage, ChainService, MV3, keyring, monorepo, XCM toggle, fork). The major chain integrations (Bitcoin, TON, Cardano, Bittensor) and account models (unified, proxy, multisig) had no AD entry despite being core architecture — the same gap just fixed in CONTEXT. Add AD-11..AD-19, each cross-referencing the CONTEXT decision(s) and source issues. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PRD: thin Epics & User Stories index (FR-centric), ✅/🚧/📋 status key, and status corrections (FR-50/93/124/144/112 → planned, FR-99 TON, FR-117 LST text). ARCHITECTURE: fix NftService class name (was NFTService). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds 17 epics + completes the 3 pilots. Sections tiered by story count per the canonical epic template (Small/Medium/Large): Feature pillars + AD Coverage on Medium+, and §9 Object map / §13 Cross-story testing / §14 Performance budgets on Medium+ where applicable. Happy-path diagrams are shipped-only (no planned steps); grounded in real services (ChainService, EarningService, SwapService, KeyringService, RequestService, NftService, …). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
One story per FR (prd_ref → FR) plus per-epic hardening clusters (no FR). All status: backlog (Stream-B conversion phase); real shipped state lives in the PRD FR markers. Retroactive stories backfill commit/version_shipped in a later reconciliation pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Auto-generated via koni-docs status. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…giene to EPIC-1 AD-20 (four-state MV3 lifecycle) is owned by EPIC-1/US-1.1; EPIC-20 now marks it *referenced* (it refactors the lifecycle for perf, it doesn't own the contract), resolving the double-ownership with EPIC-1. US-20.7 (dependency auditability / supply-chain hygiene, NFR-19) was a junk-drawer fit in a performance epic — it rode EPIC-1's AD-05/AD-06 and shared no surface with the perf pillars. Folded into EPIC-1/US-1.5 as a 7th build/CI hardening theme and removed from EPIC-20 (7 -> 6 stories); NFR-19 PRD pointer now -> US-1.5. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
EPIC-20 dropped to 6 stories after relocating supply-chain hygiene to EPIC-1. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Review round after sub-task 3: assignee identity-resolution + history backfill, koni-docs conformance gaps (5-layer/sprint/version drift), web-surface base epic, public/private multi-repo governance, recurring-task skills, and a docs/knowledge research layer proposal. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add §L (master→main, subwallet-dev→dev cutover: CI, artifact names, webapp/ web-runner build re-org, propagate to Mobile + Chainlist) and reorder §K. Concrete task breakdown deferred until the review meeting finalizes scope. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…map plan - Strip all references to Branch rename and ERP-critical path - Collapse from 6 waves to 5, removing the rename wave - Update dependency diagram, gantt chart, and wave summary accordingly - Keep existing branches unchanged for stability
…ries - Create EPIC-21 (Docs & Conformance Infrastructure) with 3 stories: - US-21.1: Contributor identity map - US-21.2: History backfill - US-21.3: Conformance close-out - Add gap stories from subwallet-dev merge: - US-8.13: Payload decode error handling (#4989) - US-4.24: Remove Polygon zkEVM (#5002) - US-12.17: Earning term & condition display (#5007) - Update EPIC-4, EPIC-8, EPIC-12 story tables and PRD - Regenerate STATUS.md (175 stories)
…-21.2 - Create sprint-2026-W28.md with EPIC-21 scope (3 stories) - Assign US-21.1 → assignee: tunghp2002, status: in-progress; US-21.2/21.3 → assignee: tunghp2002 - Update US-21.2 Background/ACs/Dev notes for sprint archive and monthly naming - Remove archive/ references and sprint-YYYY-MNN convention per user feedback - Regenerate STATUS.md (175 stories)
…tory Convert all 302 releases from the root CHANGELOG.md into the koni-docs changelog format under docs/CHANGELOG.md, which becomes the canonical release history. The root file is left byte-for-byte untouched because scripts/koni-ci-ghact-build.mjs still greps it for a bare `## <version>` heading to gate GitHub releases; until that script is migrated, a release must be written to both files. Commit SHAs are resolved from the `[CI Skip] release/stable <version>` commits rather than from tags, since tags are unreliable here (v0.2.5 points at the `release/beta 0.2.6-0` commit). Dates come from those commits rather than the source file's `Build date:` lines, per the "code wins" reconciliation rule in docs/notes/2026-07-07.md; this corrects 24 dates, including 0.7.8/0.7.9/0.8.1 whose year was off by one. Six versions (0.2.1, 0.3.1, 0.4.1, 0.6.1, 0.7.1, 0.8.1) appear twice because the Koni fork restarted numbering over versions the upstream polkadot-js extension had used; each pair is resolved to a distinct, era-correct SHA. Six early Koni releases predate this repository's history and carry no commit line rather than a fabricated one (RULE-2). AGENTS.md section 7 is updated: it still listed docs/CHANGELOG.md as pending sub-task 2, and pointed RULE-1/RULE-2 at the root file. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve all 123 git identities across 104 email addresses and 20,125
commits to 72 humans, 6 bots and 1 orphan. The three counts sum exactly
to the shortlog total.
Two resolution rules mattered more than the story anticipated. A noreply
address embeds the login as it was when the commit landed, so the map
resolves the numeric id through GET /user/{id} instead; three accounts
had been renamed since, and NamPhamc99 -> nulllpc alone had split 2,871
commits across two apparent people. And GET /commits?author=<email> only
searches the default branch, so it reported branch-only contributors as
unattributable; reading author.login off a real commit SHA moved 14
emails out of orphan.
Name matching is not a valid rule and is not used: the git name `lw`
belongs to lw-cdm but is a real GitHub account (Luca Wehrstedt),
`bluedot` is an Organization rather than bluezdot, and `namph` is Nam
Phung rather than nulllpc. Resolving those names to their same-named
accounts would have misattributed 1,033 commits.
Four identities with contradictory evidence were confirmed by the repo
owner and recorded with their evidence in the map. The one orphan is a
deleted GitHub account, left unassigned rather than guessed.
The story's background said ~1,700 commits; the real figure is 20,125.
Status is `review`, not `done`: the done gate requires version_shipped
and this ships in no product release yet.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…, renumber IDs Backfill every doc layer from the product's real history: 302 releases, 20k commits, 174 stories. VERSION 1.3.79 → 1.3.82; every done story carries a version_shipped, a commit and an assignee that were each verified, not inferred. METHOD version = the CHANGELOG bullet that FIRST delivers the story's headline capability (completion rule when the title enumerates components); commits resolved from that bullet's issue number and filtered to a date window around the release — the repo carries inherited polkadot-js history, so low issue numbers collide with upstream PRs; every commit then verified with `git merge-base --is-ancestor <sha> <anchor>`; assignee from the US-21.1 contributor map. 27 stories in batch 1, then 85 through a multi-agent fan-out (one trace agent + one adversarial verifier each), then a straggler pass. Outcome: 113 done stories, 282 commit refs passing an independent containment re-check. ANCHOR RULES (the six earliest Koni releases have neither a tag nor a release commit) extension → tag v<ver>; missing tag → the release commit recorded in docs/CHANGELOG.md; missing that too → the earliest existing tag >= ver. 1.3.81 was tagged but never released. TWO VERSION SPACES This repo builds two products on two lineages that share a version-number series: master/subwallet-dev → the extension (tagged, 1.3.82); webapp/webapp-dev → the web app (untagged; releases are "[CI Skip] release/stable X.Y.Z" commits, 1.3.56). Extension v1.3.56 is NOT web-app 1.3.56. Stories now declare `version_space: webapp` when they ship there (US-14.2, the Transak off-ramp). Documented in AGENTS.md §7. DUPLICATES DELETED, IDS RENUMBERED US-12.11 and US-12.13 were extrapolated from the titles of tracker child issues (#4946 is a child of #4879 Trusted Stake; #4880 "Backprop" is US-11.7's alpha swap, already shipped). Deleted, and the two FR holes plus the two story-ID holes closed by a one-time gapless renumber (FR-125→124, FR-127..161 −2; US-12.12→11, 12.14→12, 12.15→13, 12.16→14, 12.17→15) while the tree still lived only on this branch. Full old→new map in docs/notes/2026-07-13-id-renumber.md. IDs are otherwise permanent. PRD RECONCILED — 159 FRs, 0 mismatches - FR-91 (ordinals) and FR-98 (Bitcoin dApp) read "shipped". Ordinals lives on an unreleased branch; the Bitcoin dApp injection is commented out with a "wait until ready" note and was never enabled. Shipping code is not shipping a capability → both "in progress". - FR-23 (Unified → Solo split) read "shipped" and has never been built — the apply script had ticked a *forward* AC. Carved into the new US-3.9; FR-23 back to "planned". - New "⏸️ withdrawn" state for capabilities that were in the product and are not any more: FR-120 (Interlay lending, removed in 1.2.12) and FR-157 (NFT-mint campaigns). - prd_ref now holds FR-N or NFR-N: 19 hardening/performance stories mapped to the NFR they defend. Six keep an empty prd_ref because the PRD states no requirement they could point at — recorded as five PRD gaps, including the earning T&C display that SHIPPED in 1.3.83. - Release 1.3.83 existed and the docs did not know: added to both changelogs, VERSION bumped. Also fixed: 17 pre-existing broken epic links; 51 done stories still carrying a "fill during reconciliation" placeholder; every epic's FR-coverage table (generated before any story was done, so all 159 rows said "backlog"). koni-docs validate exits zero.
…aduated All six ACs pass, and nothing was broken in layers 1-5 — which is the point of this story: prove the backfill left the tree consistent rather than assume it. - koni-docs validate exits 0 - ID graph: 174 stories / 159 FRs / 21 NFRs, every prd_ref entry resolves, 0 dangling - epic <-> story: every story listed in exactly one epic's table, under the epic its frontmatter names. 0 orphans, 0 phantom rows - sprint scope: the 3 stories claiming sprint-2026-W28 are exactly the 3 in its table - STATUS.md regenerated with `koni-docs status` (RULE-5), no hand edits Graduated to CONTEXT.md (Phase 4 — v1.3.8x; the header is chronological, per the template, not named after the docs program): - D90 two changelogs until the CI release gate is migrated - D91 two version spaces — declare the space, never mix the numbers - D92 the PRD needs a withdrawn state — "shipped" is not forever - D93 prd_ref holds FR-N or NFR-N — requirement-centric, not FR-centric - D94 the one-time gapless ID renumber Graduated to LESSONS.md 61-63 — each cost this backfill real time: - 61 merged != enabled != shipped. Containment is necessary, never sufficient: check the release TREE and the build's env injection. - 62 two release lineages, colliding version numbers. - 63 issue numbers collide with inherited upstream polkadot-js PRs — date-window the grep. Notes carry a (graduated) marker. Three things stayed put on purpose: the unexecuted proposals in the 2026-07-07/09 notes (marking them graduated would imply a decision nobody made); the renumber note (it is the only place the full old→new ID map lives); and contributor-map.md, which is US-21.1's deliverable, not a scratch note.
…nt that never existed EPIC-20 was classified as a "roadmap" epic up front and excluded from the trace set, so nothing in it was ever checked against git. Every doc layer agreed with every other because they all inherited that assumption. Re-audited against the shipped trees (v1.3.83 and origin/webapp 1.3.56). SHIPPED, AND NO STORY RECORDED IT - #4428 MV3 lifecycle P1 — the pub()/pri() wake-depth split — release 1.3.42 - #4478 — the fix for a regression #4428 itself introduced: isFullActive was never reset on last-port-disconnect, so after the first sleep the next pri() skipped _startFull() and Home/Earning failed to load — release 1.3.43 - #4448 api-request-strategy-v2 (60s response cache + group cancellation) — release 1.3.47. docs/CHANGELOG.md had attributed this bullet to #4458, whose commits are chain-list bumps. - #4465 aggregated data routed through the external Services SDK — what actually satisfies NFR-20 / AD-24 — release 1.3.52 US-20.1 and US-20.2 → in-progress (stalled, not active), each with an AC-by-AC audit against the shipped tree. US-20.3/4/5/6 stay backlog: every issue they cite has zero commits. US-20.4's #4984 is real work but rots unmerged on koni/dev/issue-4984 — and it is request-batching, i.e. US-20.2's territory, not US-20.4's main-thread offload. AD-07 WAS DECIDED IN 2022 AND NEVER BUILT AD-07 and NFR-11 said balance reads ride a "lightweight WsProvider" connector and that the full ApiPromise is instantiated "only for extrinsic construction", bounding RAM at ~72 MB. The code has never done this. At v0.4.1 (2022), at v1.1.64 (the release AD-07 claimed it shipped in) and at v1.3.83, SubstrateApi builds `new ApiPromise` eagerly for every enabled chain and the read path reads substrateApi.api.query.balances.locks.multi(...) off it. `lightweight` has zero hits in packages/*/src. AD-07's citation was wrong too: the PR it names merged a chain-list update. The claim had propagated into 16 stories and epics — including four DONE stories whose ticked tasks asserted the mechanism (US-2.2, US-2.5, US-7.1, US-4.4) and verification commands that assert "no ApiPromise instantiation". Corrected in place: their capabilities did ship; the docs' account of HOW was inherited from AD-07 and was wrong. The rest carry a warning banner. MEASURE BEFORE REFACTORING CONTEXT D95 revises D2 (RULE-7 — the 2022 decision stands as a record). US-20.3 is rescoped from "guard the ≤72 MB invariant" (5 pts) to "measure the real budget under MV3, record it, then decide" (3 pts); the refactor is struck from its task list until a measurement justifies it. The 137/264/72 MB figures were taken on the MV2 always-on background page — under MV3 the worker sleeps after 60s and stops every chain API, so the premise moved and nobody re-measured. Rewriting every balance read across 200+ chains is the highest-blast-radius change in this codebase; it needs a number, not a sentence in a doc. LESSONS 64: a doc-stated invariant is a claim, not evidence. Be most suspicious of a story whose job is to "guard" or "not regress" an invariant — that framing presumes it exists.
…m never built Follow-through on D95. The question left open was whether to keep the ≤72 MB target. Answer: no — and not by rewriting it into a better number, but by retiring the requirement outright. THREE SIGNALS, ALL POINTING THE SAME WAY - The pain is four years cold. The only memory incident in 302 releases is "Extension Crash due to memory overflow when loading NFT data" in 0.2.2 (2022) — the very era that motivated the decision. Nothing since. - The organisation never prioritised it: the umbrella perf tracker #4197 has sat at zero commits for about a year. - The mitigation arrived anyway: MV3's idle sleep() stops every chain API after 60s (shipped 1.2.1), so memory no longer accumulates for the browser session — without anyone doing the refactor AD-07 prescribed. A requirement nobody measures and nobody enforces is already deleted in practice; the doc was only pretending otherwise. And keeping ≤72 MB would commit the product to a number no one has ever achieved or verified in this architecture — it was the promise of a mechanism that was never built. CHANGES - PRD: NFR-11 tombstoned (retired, NOT renumbered — the number is never reused; per D94 the FR/story renumber was a one-time exception and IDs are otherwise permanent). - US-20.3 → deprecated, not deleted: CONTEXT D95, LESSONS 64 and 16 stories/epics link to it, and its audit is the starting point for whoever eventually measures. - AD-07 stays in ARCHITECTURE as a historical record of a decision never implemented — deleting it would erase the reason the trap existed. It is not a live claim. - Every "≤72 MB" budget line in EPIC-7 / EPIC-12 / EPIC-20 and in the read-path stories is struck through and marked historical; US-12.14's prd_ref drops NFR-11. - CONTEXT D96 (revision of D95) records the decision and the evidence. - LESSONS 64 gains the follow-through: once an invariant turns out never to have existed, the right move is not to build the refactor that makes the doc true — it is to ask whether anyone still wants the property. Retire it out loud, and leave the instruction: if the complaint ever arrives, MEASURE FIRST. WHAT WAS CONSIDERED AND REJECTED Paying 3 points for the probe to "close the question forever" — rejected on priority, not on principle. The same points buy a fix for a live, measurable waste: the unbounded `while (isContinue)` notification pagination loop, fired 4x per address every 30 minutes (US-20.2 AC-3, #4021, zero commits). Measure a problem someone reports; do not measure a problem the docs invented. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… the 5 rules
EPIC-21's charter promised it "never changes the product scope, the PRD's
functional requirements, or any epic's story set." It broke that promise on
day one and seven times over: two FRs withdrawn, one NFR retired, the FR table
renumbered, three stories deleted, one carved out. The promise was impossible
to keep — an epic whose job is to check the docs against the code must be able
to fix the docs it proves wrong. A charter that forbids correcting the lies it
finds is a charter that guarantees stale docs.
The intent was right; the grammar was wrong. It stated a FACT ABOUT SCOPE
("never touches X"), and a fact about scope expires the moment scope moves.
Restated as a PRINCIPLE — a docs epic changes the map, never the territory;
every product decision escalates and lands in CONTEXT as a dated D entry — it
permits the work that had to happen, does not expire, and unlike the old rule
it can be CHECKED: an FR whose status changed with no D entry to cite is a
violation. The old one was violated eight times and nothing surfaced it,
because nothing could.
Also closes the five gaps the epic found, applying the bar that killed NFR-11
(pain + a check + an owner — an unenforced requirement is folklore, and
folklore in a PRD is worse than a blank line because it reads as a commitment):
FR-160 earning T&C gate — not a gap, a MISSING ROW: it shipped in 1.3.83
with no FR to its name. First case of the product shipping a
capability the PRD never asked for.
NFR-22 financial-figure accuracy — or show unavailable, never a confident
wrong number (US-12.13, US-8.12)
NFR-23 responsiveness under account scale (US-20.4, US-20.5)
NFR-24 degrade, never blank — a bad payload must not blank the screen the
user is being asked to sign on (US-8.13)
NFR-25 web-surface hardening: CSP + reverse tabnabbing (US-5.10)
Seven stories move off `prd_ref: []` and now defend something nameable.
Docs stories can now be `done`: the gate has two branches — a story that
materializes a requirement needs `version_shipped`; a story in an epic that
materializes none ships in no release and is done on ACs + a real commit +
validate green. Without that, `review` means both "awaiting a reviewer" and
"finished, but unrepresentable", and a column that means two things is dead.
Sprint W28 closed with a real retrospective (21/21 pts) — including the four
data errors that reached the owner before they reached a check, and the fact
that EPIC-20 went untraced for the whole sprint because it was CLASSIFIED as
roadmap. A classification is an assumption, not evidence.
The five standing rules now live in AGENTS.md §7, not in one epic's charter —
every future conformance pass will look like EPIC-21, so whatever that charter
says is what the next five audits will do.
D97 what a docs epic may change; the two-branch done-gate
D98 close the five PRD gaps
§65 a rule phrased as a fact about scope expires; give it a check
160 FRs / 24 live NFRs / 0 reconcile mismatches / validate exits 0.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
koni-docsskill fromKoniverse/Koni-Skillsinto the monorepo (skills-lock.json+.agents/skills/koni-docs/).AGENTS.md(canonical AI agent guide — single source of truth for Cursor / Gemini / Codex CLI / Claude Code).CLAUDE.md(thin pointer to AGENTS.md + Koni-Docs Integration YAML block + Active Context).VERSIONfile (1.3.79, synced with rootpackage.json)..active-context.example.md(per-developer Pattern B template); gitignore.active-context.md.This is sub-task 1 of 3 on the
ai-developmentumbrella. Out of scope (separate PRs to follow):docs/content (BRIEF / PRD / ARCHITECTURE / CONTEXT / LESSONS / SETUP / sprints / CHANGELOG).Spec & plan
docs/superpowers/specs/2026-06-02-koni-docs-integration-design.mddocs/superpowers/plans/2026-06-02-koni-docs-integration-sub-task-1.mdTest plan
npx skills experimental_installreproduces.agents/skills/koni-docs/fromskills-lock.json(round-trip MATCH, byte-for-byte identical).active-context.mdis gitignored (git check-ignoreconfirms rule at.gitignore:49)<MONOREPO_TABLE_ROWS>,<TODO>,XXX-FIXME,fill in→ no matches)yarn install --immutablesucceeds (~10 s, lockfile unchanged)yarn koni-dev-build-ts(TypeScript build) succeeds## Koni-Docs Integrationblock parses as valid YAML with expected fields (plugins: [],docs_path: docs/,active_sprint: <TBD-after-sub-task-2>,version_file: VERSION)package.json(fixed in commit76ff80b6f0— original draft had 4 fabricatedwebpack:*aliases; replaced with real script namesbuild:ui,watch-dev,webapp:dev,webapp:build, plus 2 newweb-runnerrows)Known deferred items
docs/CHANGELOG.md.packages/*use version1.3.79-1(with-1monorepo internal suffix);VERSIONuses1.3.79(root). Reconciliation deferred to sub-task 2.active_sprint:inCLAUDE.mdis<TBD-after-sub-task-2>— no active sprint until sub-task 2 starts one.yarn run lintOOMs locally on the implementing machine due to a pre-existing heap limit; this is unrelated to this PR (CI is expected to run lint successfully).Brainstorming + plan trail
Implementation followed the Superpowers brainstorming → writing-plans → subagent-driven-development flow. Spec + plan files are committed in
docs/superpowers/. Every task went through two-stage review (spec compliance → code quality) before its commit was accepted. The only review iteration was Task 6 → fix commit76ff80b6f0(Section 4 fabricated commands).🤖 Generated with Claude Code